package psn.kiko.mapper.business.system;

import org.apache.ibatis.annotations.Mapper;
import psn.kiko.annotation.sql.CommonFiledAutoSet;
import psn.kiko.annotation.sql.NeedCommonFiledAutoSet;
import psn.kiko.enumeration.DataBaseOperationType;
import psn.kiko.pojo.entity.system.RoleEntity;
import psn.kiko.pojo.vo.RoleVo;

import java.util.List;

/**
 * 角色 DAO
 */
@Mapper
public interface RoleMapper{
	/**
	 * 批量插入角色,通过AOP自动设置创建时间、创建者id、更新时间、更新者id
	 * */
	@CommonFiledAutoSet(DataBaseOperationType.INSERT_BATCH)
	Integer insertBatch(@NeedCommonFiledAutoSet List<RoleEntity> list);
	
	/**
	 * 通过id批量删除角色
	 * */
	Integer deleteBatchByIds(List<Integer> ids);
	
	/**
	 * 查询角色集合
	 * */
	List<RoleVo> selectList(RoleEntity roleEntity);
	
	/**
	 * 插入角色，通过AOP自动设置创建时间、创建者id、更新时间、更新者id
	 * */
	@CommonFiledAutoSet(DataBaseOperationType.INSERT)
	Integer insert(@NeedCommonFiledAutoSet RoleEntity roleEntity);
	
	/**
	 * 更新角色，通过AOP自动设置更新时间、更新者id
	 * */
	@CommonFiledAutoSet(DataBaseOperationType.UPDATE)
	Integer updateRole(@NeedCommonFiledAutoSet RoleEntity roleEntity);
	
	/**
	 * 根据id批量修改角色状态
	 * */
	Integer updateStatusByIds(List<Integer> roleIds,short enableOrDisable);
	
	/**
	 * 根据id查询角色
	 * */
	RoleEntity selectById(Integer id);
}
